package com.mumu.muPictureBackend.model.entity;

import java.io.Serial;
import java.time.LocalDateTime;
import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 图片实体类
 *
 * @author yourname
 * @date 2025-04-05
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Picture implements Serializable {
    @TableField(exist = false)//表示该字段不在表中
    @Serial
    private static final long serialVersionUID = -1332755891376819025L;
    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)//这个可以生成更长的id 防止别人爬虫
    private Long id;

    //该图片的spaceId
    private Long spaceId;

    /**
     * 图片URL地址
     */
    private String url;

    /**
     * 图片URL地址
     */
    private String thumbnailUrl;

    /**
     * 图片名称
     */
    private String name;

    /**
     * 图片简介
     */
    private String introduction;

    /**
     * 分类标签
     */
    private String category;

    /**
     * 标签（多个用逗号分隔）
     */
    private String tags;

    /**
     * 图片大小（字节）
     */
    private Long picSize;

    /**
     * 图片宽度（像素）
     */
    private Integer picWidth;

    /**
     * 图片高度（像素）
     */
    private Integer picHeight;

    /**
     * 图片比例（宽/高）
     */
    private Double picScale;

    /**
     * 图片格式（如 png, jpg）
     */
    private String picFormat;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 编辑时间
     */
    private LocalDateTime editTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 审核状态
     */
    private Integer reviewStatus;

    /**
     * 审核信息
     */
    private String reviewMessage;

    private Long reviewerId;

    private LocalDateTime reviewTime;


    /**
     * 是否删除（0:未删除，1:已删除）
     */
    @TableLogic//打上逻辑删除的注解
    private Integer isDelete;

}